package Demo5;
//匿名对象
public class Test5_2 
{
	public static void main(String[] args)
	{
		Car c = new Car();
		c.num = 5;
		//以上两句话可以使用下面一句话来代替！！！！！！！！！
		new Car().num = 5;    //使用了匿名对象    该语句只要执行后    就是垃圾了！！！
		new Car().color = "bfsd";
		new Car().run();
		//匿名对象调用方法有意义     调用属性没什么意义
		//匿名对象使用方式之一：当对对象的方法只调用一次时 可以使用匿名对象来完成  这样比较简化
		//如果对一个对象进行多个成员进行调用   必须给这个对象起个名字
		//匿名对象使用方式二：可以将匿名对象作为实际参数进行传递
		
		
		//以下是代码的运行过程！！！
		//先运行主函数   创建Q  并将在堆内存中的地址传递给Q
		//运行show函数时     有一个赋值的过程   使c的地址也指向Q所指向的地址  
		//在函数中对其操作！！
		Car Q  = new Car();
		show(Q);
		
		
		
		//或者使用匿名函数
		show(new Car());   //匿名对象可以作为参数进行传递
		//使用匿名对象时    栈内存在运行主函数时   并不产生变量  
		//使用show函数时   先在堆内存中产生一个对象   并传递给show函数 
		
		
	}
	
	//需求：汽车修配厂   对汽车进行改装   ——黑车  三个轮胎
	public static void show(Car c)   //接收汽车类型
	{
		c.num = 2;
		c.color = "black";
		c.run();
		
	}

	
	
	
}
